Ruby on Rails - adding column with default value in ruby on rails - ruby on rails tutorial - rails guides - rails tutorial - ruby rails
Example
- To adds a column adminb> to the users table, and gives that column the default value false.
class AddDetailsToUsers < ActiveRecord::Migration[5.0]
def change
add_column :users, :admin, :boolean, default: false
end
endClicking "Copy Code" button will copy the code into the clipboard - memory. Please paste(Ctrl+V) it in your destination. The code will get pasted. Happy coding from Wikitechy - ruby on rails tutorial - rails guides - ruby rails - rubyonrails - learn ruby on rails - team
- Migrations with defaults might take a long time in large tables with for example PostgreSQL.
- This is because each row will have to be updated with the default value for the newly added column. To circumvent this (and reduce downtime during deployments).
- We can split our migration into three steps
- Add a add_column-migration similar to the one above, but set no default
- Deploy and update the column in a rake task or on the console while your app is running. Make sure your application already writes data to that colum for new/updated rows.
- Add another change_column migration, which then changes the default of that column to the desired default value